import { BrowserWindow } from 'electron'
import { autoUpdater } from 'electron-updater'

export default function (ipcMain: Electron.IpcMain, mainWindow: BrowserWindow) {
  autoUpdater.autoDownload = false
  autoUpdater.forceDevUpdateConfig = true // 开发环境是否检查更新
  // 监听更新可用
  autoUpdater.on('update-available', (info) => {
    mainWindow.webContents.send('update-available', info)
  })
  // 监听暂无可用更新
  autoUpdater.on('update-not-available', (info) => {
    mainWindow.webContents.send('update-not-available', info)
  })
  // 监听下载进度
  autoUpdater.on('download-progress', (progress) => {
    mainWindow.webContents.send('download-progress', progress)
  })
  // 更新下载完成
  autoUpdater.on('update-downloaded', () => {
    mainWindow.webContents.send('update-downloaded')
  })

  ipcMain.handle('check-updates', () => {
    autoUpdater.checkForUpdatesAndNotify()
  })

  ipcMain.handle('start-download', () => {
    if (!autoUpdater.autoDownload) {
      // 手动触发下载更新
      return autoUpdater.downloadUpdate()
    }
  })

  ipcMain.handle('restart-app', () => {
    autoUpdater.quitAndInstall()
  })
}
